"""
    Xpath基础语法：
    表达式	描述
    /	从根节点选取、或者是元素和元素间的过渡
    //	从匹配选择的当前节点选择文档中的节点，而不考虑它们的位置
    .	选取当前节点
    ..	选取当前节点的父节点
    @	选取属性
    text()	选取文本

"""

from lxml import etree

text_html = '''<div>
        <ul>
            <li class="item-1"><a href="link1.html">first itme</a></li>
            <li class="item-1"><a href="link2.html">second itme</a></li>
            <li class="item-inactive"><a href="link3.html">third itme</a></li>
            <li class="item-1"><a href="link4.html">forth itme</a></li>
            <li class="item-1"><a href="link5.html">fifth itme</a></li>
        </ul>
    </div>'''

# 1.创建解析对象

tree = etree.HTML(text_html)

# 2.使用返回的解析对象，调用xpath方法，传入xpath表达式，获取数据
# text_info = tree.xpath('//li[@class="item-1"]')  # xpath方法有返回值，返回的是一个列表，列表中的元素是element对象
# for item in text_info:
#     a_text = item.xpath('./a/text()')[0]
#     a_href = item.xpath('./a/@href')[0]
#     print(a_text, a_href)
a_href = tree.xpath('//li[@class="item-1"]/a/@href')
a_text = tree.xpath('//li[@class="item-1"]/a/text()')
# 两个列表进行合并
for href, text in zip(a_href, a_text):
    print(href, text)
